//参�?��?�指令及对应机器�?.pdf�?

//8 logic inst
`define FUNCT_AND 6'b100100
`define FUNCT_OR 6'b100101
`define FUNCT_XOR 6'b100110
`define FUNCT_NOR 6'b100111
//`define FUNCT_ANDI 6'b001100
// `define FUNCT_XORI 6'b001110
// `define FUNCT_LUI 6'b001111
// `define FUNCT_ORI 6'b001101

//6 shift inst
`define FUNCT_SLL 6'b000000
`define FUNCT_SRL 6'b000010
`define FUNCT_SRA 6'b000011
`define FUNCT_SLLV 6'b000100
`define FUNCT_SRLV 6'b000110
`define FUNCT_SRAV 6'b000111

//4 move inst
`define FUNCT_MFHI 6'b010000
`define FUNCT_MFLO 6'b010010
`define FUNCT_MTHI 6'b010001
`define FUNCT_MTLO 6'b010011

//14 arithmetic inst
`define FUNCT_ADD 6'b100000
`define FUNCT_ADDU 6'b100001
`define FUNCT_SUB 6'b100010
`define FUNCT_SUBU 6'b100011
`define FUNCT_SLT 6'b101010
`define FUNCT_SLTU 6'b101011
`define FUNCT_MULT 6'b011000
`define FUNCT_MULTU 6'b011001
`define FUNCT_DIV 6'b011010
`define FUNCT_DIVU 6'b011011
// `define FUNCT_ADDI 6'b001000
// `define FUNCT_ADDIU 6'b001001
// `define FUNCT_SLTI 6'b001010 
// `define FUNCT_SLTIU 6'b001011

//4 jump inst
`define FUNCT_JR 6'b001000
`define FUNCT_JALR 6'b001001
// `define FUNCT_J 6'b000010
// `define FUNCT_JAL 6'b000011

//8 branch inst
// `define FUNCT_BEQ 6'b000100
// `define FUNCT_BGTZ 6'b000111
// `define FUNCT_BLEZ 6'b000110
// `define FUNCT_BNE 6'b000101
// `define FUNCT_BLTZ 6'b000001
// `define FUNCT_BLTZAL 6'b000001
// `define FUNCT_BGEZ 6'b000001
// `define FUNCT_BGEZAL 6'b000001

//5 load inst
`define FUNCT_LB 6'b100000
`define FUNCT_LBU 6'b100100
`define FUNCT_LH 6'b100001
`define FUNCT_LHU 6'b100101
`define FUNCT_LW 6'b100011

// 3 store inst
// `define FUNCT_SB 6'b101000
// `define FUNCT_SH 6'b101001
// `define FUNCT_SW 6'b101011

//define loadSign
`define Sign_LB  3'b001
`define Sign_LBU  3'b010
`define Sign_LH  3'b011
`define Sign_LHU  3'b100
`define Sign_LW  3'b101

// define compare sign (branch compare)
`define Sign_EQ 3'b001
`define Sign_NE 3'b010
`define Sign_GZ 3'b011
`define Sign_GEZ 3'b100
`define Sign_LZ 3'b101
`define Sign_LEZ 3'b110

//define storeSign
`define Sign_SB  3'b001
`define Sign_SH  3'b010
`define Sign_SW  3'b011
